package cn.zh.commons;

import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;

/**
 * @author : 张航
 * @date : 2024-05-13 19:44
 * @description:
 * 前端使用的是layui的组件库 在动态渲染数据时 需要有特定的数据格式
 * 当前统一响应结果 按照layui的要求进行设计
 **/
@Data
@JsonInclude(JsonInclude.Include.NON_NULL) //java对象转换为json格式数据时 自动删除为null的数据
public class ResponseResult {
//    响应状态码  layui中  0代表成功
    private Integer code;
//    操作的提示信息 删除成功
    private String message;
//    总条数 分页需要
    private Long count;
//    当前页数据
    private Object data;


    //操作成功
    public static ResponseResult success(){
        ResponseResult responseResult = new ResponseResult();
        responseResult.setCode(0);
        responseResult.setMessage("操作成功");
        return responseResult;
    }

    //操作失败
    public static ResponseResult fail(){
        ResponseResult responseResult = new ResponseResult();
        responseResult.setCode(110);
        responseResult.setMessage("操作失败");
        return responseResult;
    }

    //异常
    public static ResponseResult error(){
        ResponseResult responseResult = new ResponseResult();
        responseResult.setCode(500);
        responseResult.setMessage("服务器繁忙,请刷新重试……");
        return responseResult;
    }

//
    public ResponseResult data(Object data){
        this.data=data;
        return this;
    }

    public ResponseResult count(Long count){
        this.count=count;
        return this;
    }
    public ResponseResult message(String message){
        this.message=message;
        return this;
    }

}
